bat实现命令行全盘遍历搜索文件 您所在的位置:网站首页 dos 查找文件名 bat实现命令行全盘遍历搜索文件

bat实现命令行全盘遍历搜索文件

2023-07-23 21:41| 来源: 网络整理| 查看: 265

目录一、遍历搜索文件或目录的命令二、全盘遍历查找脚本三、配置环境变量命令行使用四、扩展 forfiles 的使用

背景:当想要查找一个文件时,记得放在某个盘里。手动去遍历时感觉好心累,找了半天还是没有找着(虽然win有自带的搜索框,但是看着进度条的速度,我便果断的点了取消)。基于这个情况,所以写了脚本满足自身查找文件的需求。

一、遍历搜索文件或目录的命令

先来了解一下win自带的遍历搜索命令,这两个命令都可以进行模糊匹配。例如:sea*.bat

dir /S search.bat   遍历当前目录查找search.bat 文件 forfiles /S /M search.bat   遍历当前目录查找search.bat文件

以上两个命令各有优势,都是指定盘符查找,视情况使用。

二、全盘遍历查找脚本

这里全盘遍历便是根据上述命令进行循环查找

@echo off& setlocal enabledelayedexpansion rem +++++++++++++++++++++++++++++++++++++++++++ rem search.bat rem By zhzw @2018/7/4 rem rem Version: 1.0 rem +++++++++++++++++++++++++++++++++++++++++++ set stime=%time:~0,2%%time:~3,2%%time:~6,2% if "%stime:~0,1%"==" " set "stime=0%stime:~1%" if "%1" equ "" ( echo 命令语法不正确。使用/?查看帮助 goto exit ) if "%1" equ "/?" ( echo 全盘搜索文件/文件夹或者遍历目录。 echo. echo SEARCH ^[file^]^[folder^]^[path^] ^[/V^] echo. echo ^[file^]^[folder^]^[path^] echo 指定要列出的文件、文件夹或目录列表。 echo. echo ^[/V^] echo 查找相关字符串 goto exit ) if /i "%1" equ "/v" ( echo 模糊查找 set pwd=%cd% echo start searching ..... echo. for %%i in (C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\) do ( if exist %%i ( echo ■■■■ Searching for the %%i disk rem if exist %%i\nul rem cd /d %%i\ & dir /S/b "%1" 2>nul cd /d %%i & dir /S/b |findstr "%2$" & echo. ) ) cd /d !pwd! echo. &echo. &echo. ) else ( set pwd=%cd% echo start searching ..... echo. @rem fsutil fsinfo drives 获得各驱动器盘符 for %%i in (C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\) do ( if exist %%i ( echo ■■■■ Searching for the %%i disk rem if exist %%i\nul rem cd /d %%i\ & dir /S/b "%1" 2>nul cd /d %%i & dir /S/b "%1" & echo. ) ) cd /d !pwd! echo. &echo. &echo. ) set etime=%time:~0,2%%time:~3,2%%time:~6,2% if "%etime:~0,1%"==" " set "etime=0%etime:~1%" echo 开始时间:%stime% echo 结束时间:%etime% :exit 三、配置环境变量命令行使用

我的电脑 -->右键 --> 属性 --> 环境变量 --> 系统变量 --> Path --> 输入search.bat 文件所在路径

这样就能在命令行快速的使用命令查找文件或目录所在路径了

最后附上效果图:

四、扩展 forfiles 的使用 删除3天前的所有文件 forfiles /P G:\Test\ /D -3 /C "cmd /c del @file" 删除今天或今天之后的Test目录下的所有数据 forfiles /D +%date:~0,10% /P G:\Test\ /C "cmd /c rd /S/Q G:\Test\" 删除今天之后的文件和目录 forfiles /D +%date:~0,10% /P G:\Test\ /C "cmd /c if @isdir==true (rd /S/Q @path) else (del @file)"


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有